rm(list = ls())
# library("rstudioapi")
# setwd(dirname(getActiveDocumentContext()$path))
Uncomment and run this block if you haven’t had these packages installed
# install.packages("ona", repos = c("https://cran.qe-libs.org", "https://cran.rstudio.org"))
# install.packages("tma", repos = c("https://cran.qe-libs.org", "https://cran.rstudio.org"))
# install.packages("magrittr")
# mapid = "23230129"
mapid = "21078015"
# mapid = "24096504"
wd = paste0(getwd(), "/data/")
A_matrix = read_csv(paste0(wd, mapid, "_a_matrix.csv"))
B_matrix = read_csv(paste0(wd, mapid, "_b_matrix.csv"))
C_matrix = read.csv(paste0(wd, mapid, "_c_matrix.csv"))
sh_info = read.csv(paste0(wd, "LEM text - Stakeholders.csv"))
A = jsonlite::read_json(paste0(wd, mapid, "_init_map.json"))
reps = jsonlite::read_json(paste0(wd, mapid, "_reps.json"))
sub_result = readRDS(paste0(wd, mapid, "a_sub_result_new.rds")) #record satisfy level
sh_name = A_matrix %>%
select(c(Name)) %>%
unique() %>%
pull()
sh_info = sh_info %>%
filter(Name %in% sh_name) %>%
arrange(match(Name, sh_name)) %>%
unite("SHinfo", Name:Direction, remove = TRUE) %>%
pull()
name_col = sh_name
ind_col = c()
dir_col = c()
group_col = c()
for (i in 1:length(A$indicators)) {
for (j in 1:length(A$indicators[[i]]$stakeholders)) {
ind_col <- append(ind_col, A$indicators[[i]]$stakeholders[[j]]$indKey)
dir_col <- append(dir_col, A$indicators[[i]]$stakeholders[[j]]$direction)
group_col <- append(group_col, A$indicators[[i]]$stakeholders[[j]]$stakeholderGroup)
}
}
sh_df <- data.frame(name = name_col, indicator = ind_col, direction = dir_col, group = group_col)
sh_df
business <- sh_df %>% filter(group == "Local Business Consortium")
business <- business$name
environmental <- sh_df %>% filter(group == "Environmental Justice Center")
environmental <- environmental$name
community <- sh_df %>% filter(group == "Community Coalition")
community <- community$name
submission_name = C_matrix$user_name
submission_order = c()
sub_approval_count = c()
sub_order_num= c()
for (i in 1:length(sub_result)){
submission_order = append(submission_order, sub_result[[i]]$userKey)
sub_order_num = append(sub_order_num, sub_result[[i]]$submissionCount)
sub_approval_count = append(sub_approval_count, sub_result[[i]]$approvalCount)
}
submission_df <- data.frame(userKey = submission_order, submissionCount = sub_order_num, approvalCount = sub_approval_count)
uniqueUsers <- unique(submission_df$userKey)
print(submission_df)
print(uniqueUsers)
[1] "jsignorella" "Tony_lacen"
[3] "Autumn" "Angelina123"
[5] "mohamed711" "SofiaTorres"
[7] "diego" "JacksonK"
[9] "TekoaMyers" "giannasx3"
[11] "Isabella" "amyaharidano13"
[13] "ShiMyers" "AnthonyD"
[15] "kasinrose1" "Ariana_25"
[17] "Cole" "KylieF"
[19] "Deandre" "Jada"
[21] "ChaseB." "audrie.ambeault"
[23] "Eric" "jodilamagna"
[25] "[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" "nicholaschaber"
[27] "Jenniferfall" "AubreyH"
[29] "nick" "Nathen"
[31] "robloxman225" "Kabaiaa"
[33] "hhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "Amanda"
[35] "BryceG13" "Jayna"
[37] "HectorMajor" "NicholasP"
[39] "Teyshann11" "Meghanmelo"
[41] "AidenD" "cole13"
[43] "DylanJodoin123" "Colin_Danko_25"
[45] "Elijah25" "emmguerra"
[47] "Caden" "VictoriaB"
[49] "Synthia" "TannerD"
[51] "Cstpierre" "LoganM22"
[53] "Caitlin" "Neves7C"
[55] "HannahSorel" "HunterK"
[57] "Aiden" "AydenH"
[59] "addisonboulris_" "gracie"
[61] "PaytonG14" "mainmandiaw3545"
[63] "Esaraiva" "Hailey"
[65] "Marcos" "EthanTaylor25"
[67] "GabeS" "Sofia214Torres"
[69] "Tiffany" "MarquellMoniz25"
[71] "RyanG" "Daniel"
[73] "Alexa" "addisonboulris"
[75] "Linnea" "Hunter"
[77] "Collin" "Grace"
[79] "anto.nella" "AaronFerreira"
[81] "Leyla" "Alysiah"
[83] "HaileyP" "Zackary"
[85] "Lila" "TimmyTomlinson25"
[87] "EricaP" "ConnorHogan"
[89] "butterfly" "DavidGa"
[91] "graciel" "Mayolifs"
[93] "rboler25" "nchaber123"
[95] "Shawn" "Marlenyg"
[97] "AlexiaB" "AidanPereira"
[99] "Bigboi1234" "Monicaking"
[101] "Kabaia" "joziah12"
[103] "D4v0nt43" "EdgarP"
[105] "Noleen" "MissFrizzle"
[107] "Soph.martini" "EdgarP190"
[109] "SophiaP" "amyah131"
[111] "NathanG" "Marcus25"
[113] "JaredL" "Emmanewberg"
[115] "alexn" "Oscar"
[117] "JettB" "jazlynf"
[119] "jacobw" "NolanKelly25"
[121] "Nicoleoliveira" "JeremyS"
[123] "AndrewG" "DonutD4V0NT43"
[125] "Taylorg1209" "TekoaM"
[127] "AidenDawley" "rachaelbonner25"
[129] "Makaylah23" "Travis"
[131] "Jordan" "jellyboyjazzy"
[133] "Aswafford25" "Ryan"
[135] "joditeach"
Filter only users with more than 2 submissions
uniqueUsers_filtered <- submission_df %>%
group_by(userKey) %>%
summarise(Count = n()) %>%
filter(Count > 2)
uniqueUsers_filtered <- uniqueUsers_filtered$userKey
numPlots <- 7 # adjust as appropriate
batchSize <- ceiling(length(uniqueUsers_filtered) / numPlots)
for (i in 1:numPlots) {
batch <- submission_df %>% filter(userKey %in% uniqueUsers_filtered[(((i-1) * batchSize) + 1):(min(length(uniqueUsers_filtered), i * batchSize))])
# Create a line plot using ggplot2
p <- ggplot(batch, aes(x = submissionCount, y = approvalCount, color = userKey, linetype = userKey)) +
geom_line(size=1) +
scale_x_continuous(breaks = 1:nrow(submission_df), labels = 1:nrow(submission_df), minor_breaks = NULL) +
scale_y_continuous(breaks = seq(0, max(submission_df$approvalCount), by = 1), minor_breaks = NULL) +
theme_minimal()
print(p)
}
Prepare dataframe for stacked barplot
submission_detailed_df <- data.frame(userKey = character(), submissionCount = integer(), business = integer(),
businessMax = integer(), environmental = integer(), environmentalMax = integer(),
community = integer(), communityMax = integer())
for (i in 1:length(sub_result)) {
if (sub_result[[i]]$userKey %in% uniqueUsers_filtered) {
b_max = sum(business %in% sub_result[[i]]$stakeholders)
e_max = sum(environmental %in% sub_result[[i]]$stakeholders)
c_max = sum(community %in% sub_result[[i]]$stakeholders)
b_select = sub_result[[i]]$stakeholders[sub_result[[i]]$stakeholders %in% business]
e_select = sub_result[[i]]$stakeholders[sub_result[[i]]$stakeholders %in% environmental]
c_select = sub_result[[i]]$stakeholders[sub_result[[i]]$stakeholders %in% community]
b_count = 0
e_count = 0
c_count = 0
for (b in b_select) {
b_count = b_count + sub_result[[i]]$stakeholderApproval[[b]]
}
for (e in e_select) {
e_count = e_count + sub_result[[i]]$stakeholderApproval[[e]]
}
for (c in c_select) {
c_count = c_count + sub_result[[i]]$stakeholderApproval[[c]]
}
submission_detailed_df <- rbind(submission_detailed_df, data.frame(userKey = sub_result[[i]]$userKey,
submissionCount = sub_result[[i]]$submissionCount, business = b_count,
businessMax = b_max, environmental = e_count, environmentalMax = e_max,
community = c_count, communityMax = c_max))
}
}
bar_width = 0.5
dodge_width <- 0 # Adjust this as needed
expand_mults <- c(0, 0.5)
submissionCount_levels <- as.character(unique(submission_detailed_df$submissionCount))
for (user in uniqueUsers_filtered) {
b_plot <- ggplot(submission_detailed_df %>% filter(userKey == user), aes(x = factor(submissionCount))) +
geom_bar(aes(y = businessMax), stat = "identity", fill = "gainsboro", position = position_dodge(width = dodge_width), width = bar_width) +
geom_bar(aes(y = business), stat = "identity", fill = "cornflowerblue", position = position_dodge(width = dodge_width), width = bar_width) +
labs(title = "Business",
x = "submissionCount",
y = "count",
fill = "Variable") +
theme_minimal()
# +
# scale_x_discrete(expand = expand_scale(mult = expand_mults, add = c(0, 0)))
# Assuming the range of your y-axis is known or can be calculated:
y_max <- max(submission_detailed_df$businessMax, na.rm = TRUE)
# Create a sequence from 1 to the maximum value of y, by 1 unit interval
hlines <- seq(1, y_max, by = 1)
# Add horizontal lines to the plot
b_plot <- b_plot + geom_hline(yintercept = hlines, color = "white", linetype = "solid")
e_plot <- ggplot(submission_detailed_df %>% filter(userKey == user), aes(x = factor(submissionCount))) +
geom_bar(aes(y = environmentalMax), stat = "identity", fill = "gainsboro", position = position_dodge(width = dodge_width), width = bar_width) +
geom_bar(aes(y = environmental), stat = "identity", fill = "forestgreen", position = position_dodge(width = dodge_width), width = bar_width) +
labs(title = "Environmental",
x = "submissionCount",
y = "count",
fill = "Variable") +
theme_minimal()
y_max <- max(submission_detailed_df$environmentalMax, na.rm = TRUE)
hlines <- seq(1, y_max, by = 1)
e_plot <- e_plot + geom_hline(yintercept = hlines, color = "white", linetype = "solid")
c_plot <- ggplot(submission_detailed_df %>% filter(userKey == user), aes(x = factor(submissionCount))) +
geom_bar(aes(y = communityMax), stat = "identity", fill = "gainsboro", position = position_dodge(width = dodge_width), width = bar_width) +
geom_bar(aes(y = community), stat = "identity", fill = "darkorange", position = position_dodge(width = dodge_width), width = bar_width) +
labs(title = "Community",
x = "submissionCount",
y = "count",
fill = "Variable") +
theme_minimal()
y_max <- max(submission_detailed_df$communityMax, na.rm = TRUE)
hlines <- seq(1, y_max, by = 1)
c_plot <- c_plot + geom_hline(yintercept = hlines, color = "white", linetype = "solid")
print((b_plot / e_plot / c_plot) +
plot_annotation(title = user))
}
which means luc_1_X + luc_4_X, luc_X_1 + luc_X_4
A_matrix_2 <- A_matrix
B_matrix_2 <- B_matrix
C_matrix_2 <- C_matrix
for (i in 1:11) {
A_luc1x = which(names(A_matrix_2)==paste0("luc_", 1, "_", i-1))
A_luc4x = which(names(A_matrix_2)==paste0("luc_", 4, "_", i-1))
B_luc1x = which(names(B_matrix_2)==paste0("luc_", 1, "_", i-1))
B_luc4x = which(names(B_matrix_2)==paste0("luc_", 4, "_", i-1))
C_luc1x = which(names(C_matrix_2)==paste0("luc_", 1, "_", i-1))
C_luc4x = which(names(C_matrix_2)==paste0("luc_", 4, "_", i-1))
A_matrix_2[[A_luc1x]] <- A_matrix_2[[A_luc1x]] + A_matrix_2[[A_luc4x]]
B_matrix_2[[B_luc1x]] <- B_matrix_2[[B_luc1x]] + B_matrix_2[[B_luc4x]]
C_matrix_2[[C_luc1x]] <- C_matrix_2[[C_luc1x]] + C_matrix_2[[C_luc4x]]
}
for (i in 1:11) {
A_lucx1 = which(names(A_matrix_2)==paste0("luc_", i-1, "_", 1))
A_lucx4 = which(names(A_matrix_2)==paste0("luc_", i-1, "_", 4))
B_lucx1 = which(names(B_matrix_2)==paste0("luc_", i-1, "_", 1))
B_lucx4 = which(names(B_matrix_2)==paste0("luc_", i-1, "_", 4))
C_lucx1 = which(names(C_matrix_2)==paste0("luc_", i-1, "_", 1))
C_lucx4 = which(names(C_matrix_2)==paste0("luc_", i-1, "_", 4))
A_matrix_2[[A_lucx1]] <- A_matrix_2[[A_lucx1]] + A_matrix_2[[A_lucx4]]
B_matrix_2[[B_lucx1]] <- B_matrix_2[[B_lucx1]] + B_matrix_2[[B_lucx4]]
C_matrix_2[[C_lucx1]] <- C_matrix_2[[C_lucx1]] + C_matrix_2[[C_lucx4]]
}
for (i in 1:11) {
A_lucxx = which(names(A_matrix_2)==paste0("luc_", i-1, "_", i-1))
B_lucxx = which(names(B_matrix_2)==paste0("luc_", i-1, "_", i-1))
C_lucxx = which(names(C_matrix_2)==paste0("luc_", i-1, "_", i-1))
A_matrix_2[[A_lucxx]] = 0
B_matrix_2[[B_lucxx]] = 0
C_matrix_2[[C_lucxx]] = 0
}
A_matrix_2 <- A_matrix_2 %>% select(-c(luc_4_0, luc_4_1, luc_4_2, luc_4_3, luc_4_4,
luc_4_5, luc_4_6, luc_4_7, luc_4_8, luc_4_9, luc_4_10,
luc_0_4, luc_1_4, luc_2_4, luc_3_4, luc_4_4,
luc_5_4, luc_6_4, luc_7_4, luc_8_4, luc_9_4, luc_10_4))
B_matrix_2 <- B_matrix_2 %>% select(-c(luc_4_0, luc_4_1, luc_4_2, luc_4_3, luc_4_4,
luc_4_5, luc_4_6, luc_4_7, luc_4_8, luc_4_9, luc_4_10,
luc_0_4, luc_1_4, luc_2_4, luc_3_4, luc_4_4,
luc_5_4, luc_6_4, luc_7_4, luc_8_4, luc_9_4, luc_10_4))
C_matrix_2 <- C_matrix_2 %>% select(-c(luc_4_0, luc_4_1, luc_4_2, luc_4_3, luc_4_4,
luc_4_5, luc_4_6, luc_4_7, luc_4_8, luc_4_9, luc_4_10,
luc_0_4, luc_1_4, luc_2_4, luc_3_4, luc_4_4,
luc_5_4, luc_6_4, luc_7_4, luc_8_4, luc_9_4, luc_10_4))
colnames(A_matrix_2)[2] = "SH"
A_matrix_2 <- A_matrix_2 %>%
select(-c(...1)) %>%
add_column(user_name = "NA", .before = "luc_0_0") %>%
add_column(submission = "NA",.before = "luc_0_0") %>%
add_column(index = 1:nrow(A_matrix), .before = "SH")
colnames(B_matrix_2)[2] = "SH"
B_matrix_2 <- B_matrix_2 %>%
select(-c(...1)) %>%
add_column(user_name = "NA", .before = "luc_0_0") %>%
add_column(submission = "NA",.before = "luc_0_0") %>%
add_column(index = 1:nrow(B_matrix), .before = "SH")
C_matrix_2 <- C_matrix_2 %>%
add_column(index = 1:nrow(C_matrix_2), .before = "user_name") %>%
add_column(Name = "NA", .before = "user_name") %>%
add_column(Satisfy = "NA",.before = "user_name") %>%
add_column(N = "NA", .before = "user_name")
call generate.ona.object function
generate.ona.object <- function(data, unit.col, meta.col, codes){
output <- list()
f.units <- unit.col
ENA_UNIT <- rENA::merge_columns_c(f.units, cols = colnames(f.units));
# ENA_UNIT <- f.units
f.raw <- data
f.codes <- codes
dena_data = directedENA:::ena.set.directed(f.raw, f.units, NA, f.codes)
output.meta.data <- meta.col
dena_data$meta.data <- data.table::as.data.table(cbind(ENA_UNIT, output.meta.data))
for( i in colnames(dena_data$meta.data) ) {
set(dena_data$meta.data, j = i, value = rENA::as.ena.metadata(dena_data$meta.data[[i]]))
}
code_length <- length(dena_data$rotation$codes);
dena_data$rotation$adjacency.key <- data.table::data.table(matrix(c(
rep(1:code_length, code_length),
rep(1:code_length, each = code_length)),
byrow = TRUE, nrow = 2
))
directed.adjacency.vectors <- as.ena.matrix(data.table::as.data.table(data[, grep("V", colnames(data))]), "ena.connections")
# aren't these two the same thing
dena_data$connection.counts <- data.table::as.data.table(cbind(dena_data$meta.data, directed.adjacency.vectors))
dena_data$connection.counts = rENA::as.ena.matrix(x = dena_data$connection.counts, "ena.connections")
for (i in which(!rENA::find_meta_cols(dena_data$connection.counts)))
set(dena_data$connection.counts, j = i, value = as.ena.co.occurrence(as.double(dena_data$connection.counts[[i]])))
dena_data$model$row.connection.counts = data.table::as.data.table(cbind(dena_data$meta.data, directed.adjacency.vectors))
dena_data$model$row.connection.counts <- rENA::as.ena.matrix(dena_data$model$row.connection.counts, "row.connections")
output = dena_data;
return(output)
}
# 1. prepare df
# df <- A_matrix
# df <- B_matrix
df <- C_matrix_2
names(df)[7:106] <- paste0("V",seq(1:100))
df$mapid = mapid
# 2. accum
accumC <- generate.ona.object(
df,
unit.col = df[,1:7],
meta.col = df[,1:7],
codes = as.vector(
c("Commercial",
"Conservation_lu",
# "Conservation",
"Cropland",
"Industrial",
# "Limited Use",
"Pasture",
"Recreation",
"Residential HD",
"Residential LD",
"Timber",
"Wetlands")))
# 3. model
setC <- model(accumC)
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
warning: solve(): system is singular; attempting approx solution
# 4. GoF
correlations(setC)
NA
# 1. prepare df
df1 <- A_matrix_2
# df <- B_matrix
# df <- C_matrix
names(df1)[7:106] <- paste0("V",seq(1:100))
df1$mapid = mapid
# 2. accum
accumA <- generate.ona.object(
df1,
unit.col = df1[,1:7],
meta.col = df1[,1:7],
codes = as.vector(
c("Commercial",
"Conservation_lu",
# "Conservation",
"Cropland",
"Industrial",
# "Limited Use",
"Pasture",
"Recreation",
"Residential HD",
"Residential LD",
"Timber",
"Wetlands")))
# 3. model
setA <- model(accumA)
# 4. GoF
correlations(setA)
To do so, I need to make a set using C’s accumulation and A’s rotation matrix
set=model(accumC, rotation.set = setA$rotation)
node_size_multiplier = 0.2
node_position_multiplier = 1.0
edge_size_multiplier = 0.2
point_position_multiplier = 1.0
edge_arrow_saturation_multiplier = 1.0
ona:::plot.ena.ordered.set(setC) %>%
units(
points = setC$points,
points_color = "black",
show_mean = FALSE, show_points = TRUE, with_ci = FALSE)
ona:::plot.ena.ordered.set(setA, title = "space used for projection and its points") %>%
units(
points = setA$points,
points_color = "gray",
show_mean = TRUE, show_points = TRUE, with_ci = FALSE) %>%
nodes(
node_size_multiplier = 0.001)
ona:::plot.ena.ordered.set(setC, title = "points need to be projected in its original space") %>%
units(
points = setC$points,
points_color = "black",
show_mean = FALSE, show_points = TRUE, with_ci = FALSE)%>%
nodes(
node_size_multiplier = 0.001)
ona:::plot.ena.ordered.set(set, title = "projected points in its new space") %>%
units(
points = set$points,
points_color = "black",
show_mean = FALSE, show_points = TRUE, with_ci = FALSE) %>%
units(
points = setA$points,
points_color = "gray",
show_mean = FALSE, show_points = TRUE, with_ci = FALSE) %>%
nodes(
node_size_multiplier = 0.001)
ona:::plot.ena.ordered.set(setA, title = "space used for projection and its points") %>%
units(
points = setA$points,
points_color = "gray",
show_mean = TRUE, show_points = TRUE, with_ci = FALSE) %>%
nodes(
node_size_multiplier = 0.001)
A = setA$points[ENA_DIRECTION== 'response']
Plot both bar plots and ona plots by specifying user
uniqueUsers_filtered
[1] "AidanPereira" "Aiden"
[3] "AidenD" "AidenDawley"
[5] "Alexa" "Alysiah"
[7] "Amanda" "Angelina123"
[9] "AnthonyD" "Ariana_25"
[11] "Aswafford25" "AubreyH"
[13] "Autumn" "AydenH"
[15] "BryceG13" "Caden"
[17] "Caitlin" "ChaseB."
[19] "Cole" "Colin_Danko_25"
[21] "Collin" "ConnorHogan"
[23] "Cstpierre" "D4v0nt43"
[25] "Daniel" "DavidGa"
[27] "Deandre" "DonutD4V0NT43"
[29] "DylanJodoin123" "EdgarP"
[31] "EdgarP190" "Elijah25"
[33] "Emmanewberg" "Eric"
[35] "EricaP" "Esaraiva"
[37] "EthanTaylor25" "GabeS"
[39] "Grace" "HaileyP"
[41] "HannahSorel" "HectorMajor"
[43] "Hunter" "HunterK"
[45] "Isabella" "JacksonK"
[47] "Jada" "JaredL"
[49] "Jayna" "Jenniferfall"
[51] "JeremyS" "JettB"
[53] "Jordan" "Kabaia"
[55] "Kabaiaa" "KylieF"
[57] "Leyla" "Lila"
[59] "Linnea" "LoganM22"
[61] "Makaylah23" "Marcos"
[63] "Marcus25" "Marlenyg"
[65] "MarquellMoniz25" "Mayolifs"
[67] "Meghanmelo" "Monicaking"
[69] "NathanG" "Nathen"
[71] "Neves7C" "NicholasP"
[73] "Nicoleoliveira" "NolanKelly25"
[75] "Noleen" "Oscar"
[77] "PaytonG14" "Ryan"
[79] "Shawn" "ShiMyers"
[81] "Sofia214Torres" "SofiaTorres"
[83] "SophiaP" "Synthia"
[85] "TannerD" "Taylorg1209"
[87] "TekoaM" "TekoaMyers"
[89] "Teyshann11" "Tiffany"
[91] "TimmyTomlinson25" "Tony_lacen"
[93] "Travis" "VictoriaB"
[95] "Zackary" "[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"
[97] "addisonboulris" "alexn"
[99] "amyah131" "amyaharidano13"
[101] "anto.nella" "audrie.ambeault"
[103] "butterfly" "cole13"
[105] "diego" "emmguerra"
[107] "giannasx3" "gracie"
[109] "graciel" "hhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
[111] "jazlynf" "jodilamagna"
[113] "joziah12" "jsignorella"
[115] "kasinrose1" "mainmandiaw3545"
[117] "mohamed711" "nchaber123"
[119] "nicholaschaber" "nick"
[121] "rachaelbonner25" "rboler25"
[123] "robloxman225"
userkey = "AidanPereira" # Change as appropriate
subs <- as.list(unique(set$points$ENA_UNIT))
subs <- subs[grepl(userkey, subs)]
ona_plots <- list()
for (i in subs) {
p <- ona:::plot.ena.ordered.set(set, title = paste0(i)) %>%
edges(
weights = set$line.weights[ENA_UNIT == i],
edge_size_multiplier = edge_size_multiplier,
edge_arrow_saturation_multiplier = edge_arrow_saturation_multiplier,
node_position_multiplier = node_position_multiplier,
edge_color = c("red")) %>%
nodes(
node_size_multiplier = node_size_multiplier,
node_position_multiplier = node_position_multiplier,
self_connection_color = "red") %>%
units(
points=set$points[ENA_UNIT == i],
points_color = "black",
point_position_multiplier = point_position_multiplier,
show_mean = FALSE, show_points = TRUE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[1] & Satisfy == "Yes"],
points_color = "green",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[2] & Satisfy == "Yes"],
points_color = "blue",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[3] & Satisfy == "Yes"],
points_color = "brown",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[4] & Satisfy == "Yes"],
points_color = "purple",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[5] & Satisfy == "Yes"],
points_color = "yellow",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[6] & Satisfy == "Yes"],
points_color = "deeppink",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[7] & Satisfy == "Yes"],
points_color = "Tan",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[8] & Satisfy == "Yes"],
points_color = "Cyan",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE) %>%
units(
points = setA$points[SH == sh_name[9] & Satisfy == "Yes"],
points_color = "orange",
point_position_multiplier = point_position_multiplier,
show_mean = TRUE, show_points = FALSE, with_ci = FALSE)%>%
plotly::layout(showlegend = TRUE, legend = list(x = 100, y = 0.9)) %>%
style(name = "point", traces = c(2)) %>%
style(name = sh_info[1], traces = c(3)) %>%
style(name = sh_info[2], traces = c(4)) %>%
style(name = sh_info[3], traces = c(5)) %>%
style(name = sh_info[4], traces = c(6)) %>%
style(name = sh_info[5], traces = c(7)) %>%
style(name = sh_info[6], traces = c(8)) %>%
style(name = sh_info[7], traces = c(9)) %>%
style(name = sh_info[8], traces = c(10)) %>%
style(name = sh_info[9], traces = c(11))
ona_plots[[i]] <- p
}
bar_width = 0.5
dodge_width <- 0 # Adjust this as needed
expand_mults <- c(0, 0.5)
submissionCount_levels <- as.character(unique(submission_detailed_df$submissionCount))
b_plot <- ggplot(submission_detailed_df %>% filter(userKey == userkey), aes(x = factor(submissionCount))) +
geom_bar(aes(y = businessMax), stat = "identity", fill = "gainsboro", position = position_dodge(width = dodge_width), width = bar_width) +
geom_bar(aes(y = business), stat = "identity", fill = "cornflowerblue", position = position_dodge(width = dodge_width), width = bar_width) +
labs(title = "Business",
x = "submissionCount",
y = "count",
fill = "Variable") +
theme_minimal()
# +
# scale_x_discrete(expand = expand_scale(mult = expand_mults, add = c(0, 0)))
# Assuming the range of your y-axis is known or can be calculated:
y_max <- max(submission_detailed_df$businessMax, na.rm = TRUE)
# Create a sequence from 1 to the maximum value of y, by 1 unit interval
hlines <- seq(1, y_max, by = 1)
# Add horizontal lines to the plot
b_plot <- b_plot + geom_hline(yintercept = hlines, color = "white", linetype = "solid")
e_plot <- ggplot(submission_detailed_df %>% filter(userKey == userkey), aes(x = factor(submissionCount))) +
geom_bar(aes(y = environmentalMax), stat = "identity", fill = "gainsboro", position = position_dodge(width = dodge_width), width = bar_width) +
geom_bar(aes(y = environmental), stat = "identity", fill = "forestgreen", position = position_dodge(width = dodge_width), width = bar_width) +
labs(title = "Environmental",
x = "submissionCount",
y = "count",
fill = "Variable") +
theme_minimal()
y_max <- max(submission_detailed_df$environmentalMax, na.rm = TRUE)
hlines <- seq(1, y_max, by = 1)
e_plot <- e_plot + geom_hline(yintercept = hlines, color = "white", linetype = "solid")
c_plot <- ggplot(submission_detailed_df %>% filter(userKey == userkey), aes(x = factor(submissionCount))) +
geom_bar(aes(y = communityMax), stat = "identity", fill = "gainsboro", position = position_dodge(width = dodge_width), width = bar_width) +
geom_bar(aes(y = community), stat = "identity", fill = "darkorange", position = position_dodge(width = dodge_width), width = bar_width) +
labs(title = "Community",
x = "submissionCount",
y = "count",
fill = "Variable") +
theme_minimal()
y_max <- max(submission_detailed_df$communityMax, na.rm = TRUE)
hlines <- seq(1, y_max, by = 1)
c_plot <- c_plot + geom_hline(yintercept = hlines, color = "white", linetype = "solid")
print((b_plot / e_plot / c_plot) +
plot_annotation(title = userkey))
for (p in ona_plots) {
print(p)
}